//@flow

/**
 * 运行环境类
 * 
 * 运行环境只会影响网络请求，对其他没有影响
 */
export class EnvType {
    /**开发环境 */
    static ENV_DEBUG:string = 'debug';
    /**测试环境 */
    static ENV_BETA:string = 'beta';
    /**生产环境 */
    static ENV_PROD:string = 'production';
}

export class Env {
    /**当前运行环境
     * 在开发模式下允许设置
     * 在生产模式下禁止操作
     */
    static CurrentEnv : EnvType = EnvType.ENV_DEBUG;

    /**修改当前运行环境 */
    static ChangeEnv(env:EnvType){
        if(__DEV__){
            Env.CurrentEnv = env;
        }else{
            console.log(`非开发模式下，不能切换运行环境`)
        }
        
    }

    /**获取当前运行环境 
     * 
     * 开发模式下：读取可配置属性，便于后台开发测试使用
     * 生产模式下：读取生产环境配置
    */
    static GetCurrentEnv():string{
        return __DEV__ ? Env.CurrentEnv : EnvType.ENV_PROD ;
    }

    /**
     * 获取当前运行的包类型：debug 、 staging 、 release
     * 这个不能改变，取决于打包
     */
    static IS_RUNNING_DEBUG():boolean{
        return __DEV__;
    }
}